package com.security.securityproject;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;

/**
 * 虽然提供了一些访问控制注解，但默认是不可用的，需要通过在启动类添加@EnableGlobalMethodSecurity()注解开启后，才能使用，注意，每个注解，都需要单独开启，而且不能共存
 * 这些注解可以写到Service接口或方法上，也可以写到Controller或Controller中的方法上，一般写在Controller的方法上，当客户端请求Controller某一方法，就会进行访问控制
 * 效果就是，条件运行，程序正常执行，条件不允许，会报错500
 */

//@EnableGlobalMethodSecurity(securedEnabled = true) //注解的方式访问权限，需要url全部放行
@EnableGlobalMethodSecurity(prePostEnabled = true) //与上面两者不能共存
@MapperScan("com.security.securityproject.mapper")
@SpringBootApplication
public class SecurityprojectApplication {

    public static void main(String[] args) {
        SpringApplication.run(SecurityprojectApplication.class, args);
    }

}
